package com.greensam.pixelengine.facade;

import com.greensam.pixelengine.pojo.vo.space.request.*;
import com.greensam.pixelengine.pojo.vo.space.response.*;

import java.util.List;

/**
 * 空间分析门面服务
 *
 * @author Ma Chengrui
 * @since 2025/9/17 15:44
 */
public interface SpaceAnalyzeFacadeService {

    /**
     * 获取空间资源使用情况分析
     *
     * @param request 请求参数
     * @param userId  用户id
     * @author Ma Chengrui
     * @since 2025/9/17
     */
    SpaceUsageAnalyzeVo getSpaceUsageAnalyze(SpaceUsageAnalyzeRequest request, Long userId);

    /**
     * 获取空间分类情况分析
     *
     * @param request 请求参数
     * @param userId  用户id
     * @author Ma Chengrui
     * @since 2025/9/17
     */
    List<SpaceCategoryAnalyzeVo> listSpaceCategoryAnalyze(SpaceCategoryAnalyzeRequest request, Long userId);

    /**
     * 获取空间标签情况分析
     *
     * @param request 请求参数
     * @param userId  用户id
     * @author Ma Chengrui
     * @since 2025/9/17
     */
    List<SpaceTagAnalyzeVo> listSpaceTagAnalyze(SpaceTagAnalyzeRequest request, Long userId);

    /**
     * 获取空间大小情况分析
     *
     * @param request 请求参数
     * @param userId  用户id
     * @author Ma Chengrui
     * @since 2025/9/17
     */
    List<SpaceSizeAnalyzeVo> listSpaceSizeAnalyze(SpaceSizeAnalyzeRequest request, Long userId);

    /**
     * 获取空间用户上传行为分析
     *
     * @param request 请求参数
     * @author Ma Chengrui
     * @since 2025/9/17
     */
    List<SpaceUserAnalyzeVo> listSpaceUserAnalyze(SpaceUserAnalyzeRequest request);

    /**
     * 获取空间使用排行分析
     *
     * @param request 请求参数
     * @param userId  用户id
     * @author Ma Chengrui
     * @since 2025/9/17
     */
    List<SpaceVo> listSpaceRankAnalyze(SpaceRankAnalyzeRequest request, Long userId);
}
